#include <stdio.h>
#include <string.h>
#include <unistd.h>

#define TIMES 100
#define NUM (TIMES + 1)  // 进度条长度 + 终止符

void process() {
    char bar[NUM];
    memset(bar, '\0', sizeof(bar)); // 初始化数组为全'\0'

    const char* lable= "|/-\\ ";

    int cnt = 0;
    while (cnt <= TIMES) {
        printf("[%-100s][%d %%]...%c\r", bar,cnt,lable[cnt % 4]); // \r实现覆盖写入
        fflush(stdout);                // 强制刷新输出缓冲区

        bar[cnt++] = '#'; // 填充进度符号
        usleep(20000);         // 每秒更新一次
    }
    printf("\n"); // 进度完成后换行
}

int main(void) {
    process();
    return 0;
}
